Protocol Buffers
Rust, Python, TypeScriptなど、様々な言語の型定義ファイルに変換できる
Rust
$ sudo apt install protobuf-compiler
PROTOCにpathを入れておく
要Cmake
$ std::env::set_var("PROTOC", protobuf_src::protoc());
TypeScriptへの変換
$ npm install @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf
-Dをいれるとエラーになるので注意
$ npx buf generate <dir>
実行前に、./buf.gen.yamlを作る必要がある
protocol bufferのTS側runtime library
Denoで実行する
$ echo "{\"imports\":{\"@bufbuild/protobuf\":\"npm:@bufbuild/protobuf@2\"},\"nodeModulesDir\":true,\"tasks\":{\"buf\":\"deno cache --allow-scripts=npm:@bufbuild/buf npm:@bufbuild/buf@1 npm:@bufbuild/protoc-gen-es@2 && PATH=\$PATH:./node_modules/.bin deno run --allow-env --allow-read --allow-write --allow-run npm:@bufbuild/buf@1/buf\"}}" > deno.jsonc
./buf.gen.yamlを作る
code:yml
version: v2
inputs:
- directory: ../proto
plugins:
- local: protoc-gen-es
opt:
- target=ts
- import_extension=ts
out: ./gen
import_extension=tsとtarget=tsは必須
$ deno task buf generate
serialize
バイナリに変換してデータを保存する